/*
Victor M. Campa
Servicio de Microscopia y Analisis de Imgen del IBBTEC.
victormanuel.campa@unican.es.com
*/

*/
Esta herramienta es una macro-tool que una vez instalada en imagej nos permite calcular el area total de dos canales por separado y el area de colocalizacion de los mismos. Hoy que indicar el numero de cada canal y el Threshold que se quiere aplicar al mismo. Requiere imagenes de 512x512 pixeles aunque se puede adaptar a cualquier formato con facilidad.
*/

var A=1
var TA=50
var B=2
var TB=50

macro "IBBTEC Tool - C000D22D23D24D25D26D28D38D39D3aD3bD3cD42D43D44D45D46D48D52D54D56D62D64D66D68D69D6aD6bD6cD73D75D78D7aD7cD88D8cD92D93D94D95D96Da2Da4Da6Da8Da9DaaDabDacDb2Db4Db6Db8DbcDc3Dc5Dc8DccC000C111C222C333C444C555C666C777C888C999CaaaCbbbCcccCdddCeeeCfffD00D01D02D03D04D05D06D07D08D09D0aD0bD0cD0dD0eD0fD10D11D12D13D14D15D16D17D18D19D1aD1bD1cD1dD1eD1fD20D21D27D29D2aD2bD2cD2dD2eD2fD30D31D32D33D34D35D36D37D3dD3eD3fD40D41D47D49D4aD4bD4cD4dD4eD4fD50D51D53D55D57D58D59D5aD5bD5cD5dD5eD5fD60D61D63D65D67D6dD6eD6fD70D71D72D74D76D77D79D7bD7dD7eD7fD80D81D82D83D84D85D86D87D89D8aD8bD8dD8eD8fD90D91D97D98D99D9aD9bD9cD9dD9eD9fDa0Da1Da3Da5Da7DadDaeDafDb0Db1Db3Db5Db7Db9DbaDbbDbdDbeDbfDc0Dc1Dc2Dc4Dc6Dc7Dc9DcaDcbDcdDceDcfDd0Dd1Dd2Dd3Dd4Dd5Dd6Dd7Dd8Dd9DdaDdbDdcDddDdeDdfDe0De1De2De3De4De5De6De7De8De9DeaDebDecDedDeeDefDf0Df1Df2Df3Df4Df5Df6Df7Df8Df9DfaDfbDfcDfdDfeDff"{

roiManager("reset")
// seleccionamos el canal A y creamos una ROI basada en su Treshold.
Stack.setChannel(A);
setThreshold(TA, 255);
run("Create Selection");
roiManager("Add");
roiManager("Select", 0);
roiManager("Rename", "Canal A");
// medimos el Area del la ROI del canalA.
run("Measure");
// seleccionamos el canal B y creamos una ROI basada en su Treshold.
Stack.setChannel(B);
setThreshold(TB, 255);
run("Create Selection");
roiManager("Add");
roiManager("Select", 1);
roiManager("Rename", "Canal B");
// medimos el Area del la ROI del canal B.
run("Measure");
// sobre el canal B superponemos la ROI del canal A y medimos el area de colocalizacion. IMPORTANTE!! Seleccionar "Aplicar al Treshold" en Set Measurements.
roiManager("Select", 0);
run("Measure");
// Creamos una imagen en blanco y negro con la ROI del canal A.
run("Colors...", "foreground=white background=white selection=yellow");
newImage("CanalA", "8-bit Black", 512, 512, 1);
roiManager("Select", 0);
run("Fill", "slice");
// Creamos una imagen en blanco y negro con la ROI del canal B.
newImage("CanalB", "8-bit Black", 512, 512, 1);
roiManager("Select", 1);
run("Fill", "slice");
// Combinamos ambas imagenes en un RGB
run("Merge Channels...", "c1=CanalA c2=CanalB");
roiManager("Deselect");
roiManager("AND");
roiManager("Add");
roiManager("Select", 2);
roiManager("Rename", "Colocalizacion");

}

  macro "IBBTEC Tool Options" {
       A = getNumber("Canal A: ", A);
       TA = getNumber ("Threshold A: ", TA);
       B = getNumber("Canal B: ", B);
       TB = getNumber ("Threshold B: ", TB);
    }

